{
MEM_LOG("Error getting mfn %lx (pfn %lx) from L1 entry %" PRIpte
" for dom%d",
- mfn, get_gpfn_from_mfn(mfn), l1e_get_intpte(l1e), d->domain_id);
+ mfn, get_gpfn_from_mfn(mfn),
+ l1e_get_intpte(l1e), d->domain_id);
}
return okay;
#if CONFIG_PAGING_LEVELS >= 3
-
static int
get_page_from_l3e(
l3_pgentry_t l3e, unsigned long pfn,
#endif
return rc;
}
-
#endif /* 3 level */
#if CONFIG_PAGING_LEVELS >= 4
-
static int
get_page_from_l4e(
l4_pgentry_t l4e, unsigned long pfn,
return rc;
}
-
#endif /* 4 level */
#if CONFIG_PAGING_LEVELS >= 3
-
static void put_page_from_l3e(l3_pgentry_t l3e, unsigned long pfn)
{
if ( (l3e_get_flags(l3e) & _PAGE_PRESENT) &&
(l3e_get_pfn(l3e) != pfn) )
put_page_and_type(mfn_to_page(l3e_get_pfn(l3e)));
}
-
#endif
#if CONFIG_PAGING_LEVELS >= 4
-
static void put_page_from_l4e(l4_pgentry_t l4e, unsigned long pfn)
{
if ( (l4e_get_flags(l4e) & _PAGE_PRESENT) &&
(l4e_get_pfn(l4e) != pfn) )
put_page_and_type(mfn_to_page(l4e_get_pfn(l4e)));
}
-
#endif
-
static int alloc_l1_table(struct page_info *page)
{
struct domain *d = page_get_owner(page);
int okay;
unsigned long old_base_mfn;
+ ASSERT(writable_pagetable_in_sync(d));
+
if ( shadow_mode_refcounts(d) )
{
okay = get_page_from_pagenr(mfn, d);